# Pyarmor 8.x Change Logs

In order to improve security and support Python 3.11, there are significant
changes in Pyarmor 8.0

It has been rewritten and new features are implemented through the new commands:
`gen`, `reg`, `cfg`. These commands only work for Python 3.7 and above.

## New features

* Support Python 3.11
* Introduce 3 new commands: gen, cfg, reg
* Introduce BCC Mode, an irreversible obfuscation method
* Introduce RFT mode, an irreversible obfuscation method
* Localize and internationalize runtime error messages
* Check expired date by NTP server

Full changelogs for all 8.0+, refer to https://github.com/dashingsoft/pyarmor/releases

## Import Notes for Pyarmor prior to 8.0

In future only bug fix for old commands, no new features for old commands.

The old commands `obfuscate`, `licenses` etc. still could be used, but there
have some changes.

There are 3 cases for old users after Pyarmor 8.0 is released:

1. Never upgrade to 8.0+

  - SPP mode doesn't work

    In order to use SPP mode, it's necessary to upgrade Pyarmor to 8.0+

  - Command `pyarmor register` without any argument return `404` error

    It is used to query registration information in old Pyarmor, but now license
    server doesn't serve this web api.

    Instead use `pyarmor -v` to make sure it's not trial version.

  - Registering Pyarmor by `pyarmor register pyarmor-regcode-xxxxxx.txt` can be
    used no more than 10 times

    In order to use Pyarmor in new machine, CI server or docker, check the second
    method described in the registration file "pyarmor-regcode-xxxxxx.txt":

        Downloading "pyarmor-regfile-xxxxxx.zip" once, use this `.zip` file to
        register Pyarmor later.

2. Upgrade to 8.0 but only use old features

  By default, command `pyarmor` only accepts new commands, there are 3 ways to
  use old commands such as `obfuscate`, `licenses`:

  - Use `pyarmor-7` instead of `pyarmor`
  - Export environment variable `PYARMOR_CLI=7`, then still use `pyarmor`
  - Any way to call entry point `pyarmor.pyarmor:main_entry`

3. Upgrade to 8.0 and use new features

  - Follow new [Pyarmor EULA](LICENSE). It's a big change for old personal
    license, because new license only allows one proudct.

  - Not all old licenses could be upgraded to new license freely, refer to
    [Pyarmor licenses][licenses]

  - The old commands need not internect connection, but new command need

  - The old commands support Python 2.7~3.10, but new command only support
    Python 3.7+

Refer to
https://github.com/dashingsoft/pyarmor/tree/v8.0#import-notes-for-pyarmor-prior-to-80
https://github.com/dashingsoft/pyarmor/releases/tag/v8.0

[licenses]: https://pyarmor.readthedocs.io/en/latest/licenses.html
